/*
 * Utils.c
 *
 *  Created on: 14/07/2011
 *      Author: Hyzandey
 */

#include "Utils.h"

void liberaPonteiro(void *ponteiro) {
	if (ponteiro) {
		free(ponteiro);
	}
}

void liberaArquivos(FILE **arquivos, int quantidade) {
	if (arquivos) {
		int i = 0;
		for (i = 0; i < quantidade; i++) {
			fechaArquivo(*(arquivos + i));
		}
	}
}

void fechaArquivo(FILE *arquivo) {
	if (arquivo) {
		fclose(arquivo);
	}
}

int tokenizaString(char *stringFonte, const char *separadores,
		char ***listaRetorno) {
	char *pedaco = strtok(stringFonte, separadores);

	if (!pedaco) {
		return 0;
	}

	*listaRetorno = (char **) malloc(sizeof(char));

	int quantidadePedacos = 1;

	while (pedaco) {

		*listaRetorno = (char **) realloc(*listaRetorno,
				sizeof(char *) * quantidadePedacos);

		if (pedaco) {

			(*listaRetorno)[quantidadePedacos - 1] = pedaco;

		}

		pedaco = strtok(NULL, separadores);

		quantidadePedacos++;

	}

	return quantidadePedacos - 1;
}

